Add a test for matching with states
authorMatthias Clasen <mclasen@redhat.com>
Tue, 22 Jul 2014 22:50:31 +0000 (18:50 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 22 Jul 2014 22:50:31 +0000 (18:50 -0400)
testsuite/gtk/stylecontext.c

index 89d395ab27f13e5a2ae021060598d50cb78ad8a6..55bd2c754f8134cf9046950759893178aff1a883 100644 (file)
@@ -162,6 +162,7 @@ test_match (void)
   gtk_widget_path_append_type (path, GTK_TYPE_BUTTON);
   gtk_widget_path_iter_set_name (path, 0, "mywindow");
   gtk_widget_path_iter_add_class (path, 2, "button");
+  gtk_widget_path_iter_set_state (path, 0, GTK_STATE_FLAG_ACTIVE);
   gtk_style_context_set_path (context, path);
   gtk_widget_path_free (path);
 
@@ -245,6 +246,15 @@ test_match (void)
   gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &color);
   g_assert (gdk_rgba_equal (&color, &expected));
 
+  data = "* { color: #f00 }\n"
+         "GtkWindow:backdrop .button { color: #000 }\n"
+         "GtkWindow .button { color: #111 }\n"
+         "GtkWindow:active .button { color: #fff }";
+  gtk_css_provider_load_from_data (provider, data, -1, &error);
+  g_assert_no_error (error);
+  gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &color);
+  g_assert (gdk_rgba_equal (&color, &expected));
+
   g_object_unref (provider);
   g_object_unref (context);
 }